﻿using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;
using DevComponents.DotNetBar;

namespace GiangDay
{
    public partial class FrGiaoVien : DevComponents.DotNetBar.Office2007Form
    {
        FunctionLinh fun = new FunctionLinh();
        DB db = new DB();
        public FrGiaoVien()
        {
            InitializeComponent();
        }
        private void FrGiaoVien_Load(object sender, EventArgs e)
        {
            //lấy dữ liệu lên Gridview
            dggiaovien.DataSource = fun.laydanhsachgiaovien();

            //load lên combobox Học vị
            cbhocvi.DataSource = fun.loadhocvi();
            cbhocvi.ValueMember = "MA_HV";
            cbhocvi.DisplayMember = "TEN_HV";

            //load lên combo chức vụ
            cbGVChucVu.DataSource = fun.loadChucVu();
            cbGVChucVu.ValueMember = "MA_CV";
            cbGVChucVu.DisplayMember = "TEN_CV";

        }
        //sự kiện click vào gridview sẽ hiển thị lên textbox
        private void dggiaovien_CellClick(object sender, DataGridViewCellEventArgs e)
        {
            if (bt_themgv.Enabled==false)
            {
                bt_themgv.Enabled = true;
                btnluu.Enabled = false;
                bt_suagv.Enabled = true;
                bt_xoagv.Enabled = true;
                txtmagv.ReadOnly = true;
            }
            if (dggiaovien.SelectedRows.Count==0)
            {
                return;
            }
            txtmagv.Text=dggiaovien.Rows[dggiaovien.CurrentRow.Index].Cells["MA_GV"].Value.ToString().Trim();
            cbGVChucVu.Text = dggiaovien.Rows[dggiaovien.CurrentRow.Index].Cells["TEN_CV"].Value.ToString();
            cbhocvi.Text = dggiaovien.Rows[dggiaovien.CurrentRow.Index].Cells["TEN_HV"].Value.ToString();
            txttengv.Text = dggiaovien.Rows[dggiaovien.CurrentRow.Index].Cells["TEN_GV"].Value.ToString();
            txtsdtgv.Text = dggiaovien.Rows[dggiaovien.CurrentRow.Index].Cells["SDT_GV"].Value.ToString();
            dtngaysinhgv.Value = DateTime.Parse(dggiaovien.Rows[dggiaovien.CurrentRow.Index].Cells["NGAY_SINH_GV"].Value.ToString());
            txtdiachigv.Text = dggiaovien.Rows[dggiaovien.CurrentRow.Index].Cells["DIA_CHI_GV"].Value.ToString();
            txtuser.Text = dggiaovien.Rows[dggiaovien.CurrentRow.Index].Cells["USERNAME"].Value.ToString();
            txtpass.Text = dggiaovien.Rows[dggiaovien.CurrentRow.Index].Cells["PASSWORD"].Value.ToString();
            int quyen = int.Parse(dggiaovien.Rows[dggiaovien.CurrentRow.Index].Cells["QUYEN"].Value.ToString());
            if (quyen == 1)
            {
                cbadmin.Checked = true;
            }
            else cbadmin.Checked = false;
            if (int.Parse(dggiaovien.Rows[dggiaovien.CurrentRow.Index].Cells["GIOI_TINH"].Value.ToString())==1)
            {
                rbNam.Checked = true;
                rbNu.Checked = false;
            }
            else
            {
                rbNu.Checked = true;
                rbNam.Checked = false;
            }

        }


        //thêm giáo viên
        private void bt_themgv_Click(object sender, EventArgs e)
        {
            txtmagv.Enabled = true;
            txtmagv.Clear();
            txtmagv.Focus();
            txtuser.ResetText();
            txtpass.ResetText();
            txttengv.Clear();
            txtsdtgv.Clear();
            dtngaysinhgv.ResetValue();
            txtdiachigv.Clear();
            cbGVChucVu.ResetText();
            cbhocvi.ResetText();
            cbadmin.Checked = false;
            rbNam.Checked = false;
            rbNu.Checked = false;
            btnluu.Enabled = true;
            bt_themgv.Enabled = false;
            bt_suagv.Enabled = false;
            bt_xoagv.Enabled = false;
        }
        //sữa giáo viên
        private void bt_suagv_Click(object sender, EventArgs e)
        {
            if (txtmagv.Text=="")
            {
                MessageBox.Show("Chưa chọn giáo viên cần sữa","Thông báo",MessageBoxButtons.OK,MessageBoxIcon.Information);
                return;
            }
            int quyen;
            if (cbadmin.Checked == true)
            {
                quyen = 1;
            }
            else
            {
                quyen = 0;
            }

            int gt;
            if (rbNam.Checked == true)
            {
                gt = 1;
            }
            else
            {
                gt = 0;
            }
            //kiểm tra tồn tại username
            if (db.ktra_tontai(txtuser.Text.Trim(), "USERNAME", "GIAO_VIEN"))
            {
                MessageBox.Show("Tài khoản này đã tồn tại.", "Thông báo", MessageBoxButtons.OK, MessageBoxIcon.Error);
                txtuser.Focus();
                return;
            }
            if (fun.suaGV(txtmagv.Text,cbGVChucVu.SelectedValue.ToString(),cbhocvi.SelectedValue.ToString(), txttengv.Text, txtsdtgv.Text.ToString(), txtdiachigv.Text, dtngaysinhgv.Value,gt, txtuser.Text, txtpass.Text, quyen))
            { 
                dggiaovien.Rows[dggiaovien.CurrentRow.Index].Cells["TEN_CV"].Value=cbGVChucVu.Text;
                dggiaovien.Rows[dggiaovien.CurrentRow.Index].Cells["TEN_HV"].Value = cbhocvi.Text;
                dggiaovien.Rows[dggiaovien.CurrentRow.Index].Cells["TEN_GV"].Value = txttengv.Text;
                dggiaovien.Rows[dggiaovien.CurrentRow.Index].Cells["SDT_GV"].Value = txtsdtgv.Text;
                dggiaovien.Rows[dggiaovien.CurrentRow.Index].Cells["NGAY_SINH_GV"].Value = dtngaysinhgv.Value;
                dggiaovien.Rows[dggiaovien.CurrentRow.Index].Cells["DIA_CHI_GV"].Value = txtdiachigv.Text;
                dggiaovien.Rows[dggiaovien.CurrentRow.Index].Cells["USERNAME"].Value = txtuser.Text;
                dggiaovien.Rows[dggiaovien.CurrentRow.Index].Cells["PASSWORD"].Value = txtpass.Text;
                
                string dquyen = "Giảng viên";
                if (quyen==1)
                {
                    dquyen = "Quản lý";
                }
                dggiaovien.Rows[dggiaovien.CurrentRow.Index].Cells["QUYEN"].Value = quyen;
                dggiaovien.Rows[dggiaovien.CurrentRow.Index].Cells["DQUYEN"].Value = dquyen;
                if (rbNam.Checked==true)
                {
                    dggiaovien.Rows[dggiaovien.CurrentRow.Index].Cells["DGIOI_TINH"].Value = "Nam";
                    dggiaovien.Rows[dggiaovien.CurrentRow.Index].Cells["GIOI_TINH"].Value =gt;
                }
                else if(rbNu.Checked==true)
                {
                    dggiaovien.Rows[dggiaovien.CurrentRow.Index].Cells["DGIOI_TINH"].Value = "Nữ";
                    dggiaovien.Rows[dggiaovien.CurrentRow.Index].Cells["GIOI_TINH"].Value = gt;
                }
            }
            
        }
        //xóa giáo viên
        private void bt_xoagv_Click(object sender, EventArgs e)
        {
            if (txtmagv.Text == "")
            {
                MessageBox.Show("Chưa chọn giáo viên cần xóa", "Thông báo", MessageBoxButtons.OK, MessageBoxIcon.Information);
                return;
            }
            fun.xoaGV(txtmagv.Text);
            dggiaovien.DataSource = fun.laydanhsachgiaovien();
           // hienthidongdautien();
            txtmagv.Clear();
            txttengv.Clear();
            txtsdtgv.Clear();
            dtngaysinhgv.ResetValue();
            txtdiachigv.Clear();
        }
        //bắt lỗi ko cho nhập chử hay ký hiệu vào textbox số điện thoại
        private void txtsdtgv_KeyPress(object sender, KeyPressEventArgs e)
        {
            if (!char.IsDigit(e.KeyChar) && !char.IsControl(e.KeyChar))
            { e.Handled = true; }
            if (e.KeyChar == 13) //gởi phím tab khi nhấn enter
                SendKeys.Send("{tab}");
        }
        //các sự kiện nhấn phím enter
        private void txtmagv_KeyPress(object sender, KeyPressEventArgs e)
        {
            if (e.KeyChar == (char) Keys.Space)
                e.Handled = true;
            if (e.KeyChar == (char)Keys.Enter) //gởi phím tab khi nhấn enter
                SendKeys.Send("{tab}");
        }

        private void txttengv_KeyPress(object sender, KeyPressEventArgs e)
        {
            if (e.KeyChar == 13) //gởi phím tab khi nhấn enter
                SendKeys.Send("{tab}");
        }

        private void txtdiachigv_KeyPress(object sender, KeyPressEventArgs e)
        {
            if (e.KeyChar == 13) //gởi phím tab khi nhấn enter
                SendKeys.Send("{tab}");
        }

        private void FrGiaoVien_Activated(object sender, EventArgs e)
        {
            this.WindowState = FormWindowState.Maximized;
        }

        private void btnluu_Click(object sender, EventArgs e)
        {
            //kiểm tra dữ liệu
            if (txtmagv.Text.Trim() == "")
            {
                MessageBox.Show("Mã Giáo Viên không được rỗng", "Thông báo", MessageBoxButtons.OK, MessageBoxIcon.Error);
                txtmagv.Focus();
                return;
            }

            if (txttengv.Text.Trim() == "")
            {
                MessageBox.Show("Tên Giáo Viên không được rỗng", "Thông báo", MessageBoxButtons.OK, MessageBoxIcon.Error);
                txttengv.Focus();
                return;
            }
            if (txtsdtgv.Text.Trim() == "")
            {
                MessageBox.Show("Số điện thoại Giáo Viên không được rỗng", "Thông báo", MessageBoxButtons.OK, MessageBoxIcon.Error);
                txtsdtgv.Focus();
                return;
            }


            //kiểm tra tồn tại mã giáo viên
            if (db.ktra_tontai(txtmagv.Text.Trim(), "MA_GV", "GIAO_VIEN"))
            {
                MessageBox.Show("Mã giáo viên đã tồn tại.", "Thông báo", MessageBoxButtons.OK, MessageBoxIcon.Error);
                txtmagv.Focus();
                return;
            }
            //kiểm tra tồn tại username
            if (db.ktra_tontai(txtuser.Text.Trim(), "USERNAME", "GIAO_VIEN"))
            {
                MessageBox.Show("Tài khoản này đã tồn tại.", "Thông báo", MessageBoxButtons.OK, MessageBoxIcon.Error);
                txtuser.Focus();
                return;
            }

            // xử lý checkbox quyền cho giáo viên
            int quyen = 0;
            if (cbadmin.Checked == true)
            {
                quyen = 1;
            }
            int gt=0;
            if (rbNam.Checked==true)
	        {
                gt = 1;
	        }
            fun.themGV(txtmagv.Text.Trim(),cbGVChucVu.SelectedValue.ToString(), cbhocvi.SelectedValue.ToString(), txttengv.Text, txtsdtgv.Text.ToString(), txtdiachigv.Text, dtngaysinhgv.Value,gt, txtuser.Text, txtpass.Text, quyen);
            dggiaovien.DataSource = fun.laydanhsachgiaovien();
            bt_suagv.Enabled = true;
            bt_themgv.Enabled = true;
            bt_xoagv.Enabled = true;
            btnluu.Enabled=false;
            txtmagv.Enabled = false;
            txtmagv.Clear();
            txttengv.Clear();
            txtsdtgv.Clear();
            dtngaysinhgv.ResetValue();
            txtdiachigv.Clear();
            rbNam.Checked = false;
            rbNu.Checked = false;
            cbGVChucVu.ResetText();
            cbhocvi.ResetText();
        }

        private void txtmagv_TextChanged(object sender, EventArgs e)
        {
            txtpass.Text = txtmagv.Text;
            txtuser.Text = txtmagv.Text;
        }

        private void btbhocvi_Click(object sender, EventArgs e)
        {
            FrHocVi hocvi = new FrHocVi();
            hocvi.ShowDialog();
        }

        private void buttonX1_Click(object sender, EventArgs e)
        {
            bt_suagv.Enabled = true;
            bt_themgv.Enabled = true;
            bt_xoagv.Enabled = true;
            btnluu.Enabled = false;

            txtmagv.Enabled = false;
            txtmagv.Clear();
            txttengv.Clear();
            txtsdtgv.Clear();
            dtngaysinhgv.ResetValue();
            txtdiachigv.Clear();
            rbNam.Checked = false;
            rbNu.Checked = false;
            cbGVChucVu.ResetText();
            cbhocvi.ResetText();
        }
      
    }
}